//Model专注于存储数据 在数据变化时更新控制器。
const { positionSchema, mongoose, db } = require("../utils/mongoose")
const MongooseModel = mongoose.model('positions', positionSchema)

//增
const add = (data) => {
    //如果要保存一条数据 1.先new 模型 2.调用save方法
    const position = new MongooseModel(data)//括号里面放要保存的参数
    return position.save()
        .then(result => {
            console.log(result)
            return true
        })
        .catch(err => {
            console.log(err)
            return false
        })
    //也是个promise对象
}
//删
//deleteOne deleteMany({}) 1.给每条数据添加一个唯一的字段tokenid 2.通过这个唯一的字段作为查询条件对数据库进行删除
const del = (tokenId) => {
    return MongooseModel.deleteOne({ tokenId: tokenId })
        .then(result => {
            console.log(result)
            return result
        })
}
//改

const update = (query, updates) => {
    console.log(query, updates)
    return MongooseModel.updateOne(query, updates)
        .then(result => {
            console.log(result)
            return true
        })
        .catch(err => {
            console.log(err)
            return false
        })
}

//查
const find = (query) => {
    console.log(query)
    return MongooseModel.find(query.field).limit(query.count).skip(query.page)
        .then(result => {
            console.log(result)
            return result
        })
        .catch(err => {
            console.log(err)
            return false
        })
}

//更新全部

const updateMany = (tokenId) => {
    const query = { "tokenId": { $gt: tokenId } };
    const updates = { $inc: { "tokenId": -1 } };
    return MongooseModel.updateMany(query, updates)
        .then(result => {
            console.log(result);
            return true
        })
        .catch(err => {
            console.log(err)
            return false
        })
}

module.exports = {
    add,
    find,
    del,
    update,
    updateMany
}
